package  com.blackandwhitesensation.sice.dataaccess.daoFactory;
import com.blackandwhitesensation.sice.dataaccess.dao.*;
/**
 * Factory for Data Access Objects Strategy The DAO pattern can be made highly flexible 
 * by adopting the Abstract Factory [GoF] and the Factory Method [GoF] patterns.
 * When the underlying storage is not subject to change from one implementation to another, 
 * this strategy can be implemented using the Factory Method pattern to produce a number of DAOs needed by the application. 
 * This class is a Factory Method pattern
 *
 * @author Zathura Code Generator http://code.google.com/p/zathura/
 */
public class JPADaoFactory {
private static JPADaoFactory instance = null;
/**
* 
* @return JPADaoFactory
*/
public static JPADaoFactory getInstance(){
if(instance == null){
instance = new JPADaoFactory();
}
return instance;
}	
private JPADaoFactory(){
}
    /**
    * This method instantiates the IEventoDAO class for JPA 
    * that is used in this applications deployment environment to access the data. 
    * @return IEventoDAO implementation
    */
    public IEventoDAO getEventoDAO() {
    return new EventoDAO();
    }
    /**
    * This method instantiates the IIngresoEventoDAO class for JPA 
    * that is used in this applications deployment environment to access the data. 
    * @return IIngresoEventoDAO implementation
    */
    public IIngresoEventoDAO getIngresoEventoDAO() {
    return new IngresoEventoDAO();
    }
    /**
    * This method instantiates the IMembresiaDAO class for JPA 
    * that is used in this applications deployment environment to access the data. 
    * @return IMembresiaDAO implementation
    */
    public IMembresiaDAO getMembresiaDAO() {
    return new MembresiaDAO();
    }
    /**
    * This method instantiates the ITipoDocumentoDAO class for JPA 
    * that is used in this applications deployment environment to access the data. 
    * @return ITipoDocumentoDAO implementation
    */
    public ITipoDocumentoDAO getTipoDocumentoDAO() {
    return new TipoDocumentoDAO();
    }
    /**
    * This method instantiates the ITipoEventoDAO class for JPA 
    * that is used in this applications deployment environment to access the data. 
    * @return ITipoEventoDAO implementation
    */
    public ITipoEventoDAO getTipoEventoDAO() {
    return new TipoEventoDAO();
    }
    /**
    * This method instantiates the ITipoUsuarioDAO class for JPA 
    * that is used in this applications deployment environment to access the data. 
    * @return ITipoUsuarioDAO implementation
    */
    public ITipoUsuarioDAO getTipoUsuarioDAO() {
    return new TipoUsuarioDAO();
    }
    /**
    * This method instantiates the IUsuarioDAO class for JPA 
    * that is used in this applications deployment environment to access the data. 
    * @return IUsuarioDAO implementation
    */
    public IUsuarioDAO getUsuarioDAO() {
    return new UsuarioDAO();
    }
    /**
    * This method instantiates the IUsuarioSistemaDAO class for JPA 
    * that is used in this applications deployment environment to access the data. 
    * @return IUsuarioSistemaDAO implementation
    */
    public IUsuarioSistemaDAO getUsuarioSistemaDAO() {
    return new UsuarioSistemaDAO();
    }
    
    
    /**
     * This method instantiates the ITipoMembresiaDAO class for JPA 
     * that is used in this applications deployment environment to access the data. 
     * @return ITipoMembresiaDAO implementation
     */
     public ITipoMembresiaDAO getTipoMembresiaDAO() {
     return new TipoMembresiaDAO();
     }
     
     /**
      * This method instantiates the ITipoUsuarioSistemaDAO class for JPA 
      * that is used in this applications deployment environment to access the data. 
      * @return ITipoUsuarioSistemaDAO implementation
      */
      public ITipoUsuarioSistemaDAO getTipoUsuarioSistemaDAO() {
      return new TipoUsuarioSistemaDAO();
      }
     
}
